/** 
 * Project Name: farm-core 
 * File Name: Param.java 
 * Package Name: com.bugull.farm.core.frame 
 * Date: 2017年2月21日下午6:04:57 
 * Copyright (c) 2017, hadlinks All Rights Reserved. 
 * 
 */
package com.bugull.farm.core.frame.structure;

/** 
 * ClassName: Param 
 * Function: XML文件中参数内容，包含各种属性.  
 * date: 2017年2月21日 下午6:04:57  
 * 
 * @author songwei (songw@hadlinks.com)
 * @version 
 * @since JDK 1.8 
 */
public class Param {
	
	private String name;//通信协议中字段的名称（必填）
	
	private String type;//通信协议中字段的长度类型，fixed表示定长，varying表示变长（必填）
	
	private Integer len;//通信协议中字段的长度，单位字节（如果type是fixed则必填）
	
	private String depend;//通信协议中字段如果是变长，则需要依赖其他字段来定义长度，depend可以用来判断使用哪个长度字段（type为varying时必填）
	
	private boolean isCmd;//是否是命令字字段，如果是命令字字段，则所有的接受的数据根据命令字判断是哪种类型的命令
	
	private int index;//如果是cmd字段，直接指明位置

	public String getName() {
		return name.toLowerCase();
	}

	public void setName(String name) {
		this.name = name.toLowerCase();
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public Integer getLen() {
		return len;
	}

	public void setLen(Integer len) {
		this.len = len;
	}

	public String getDepend() {
		return depend.toLowerCase();
	}

	public void setDepend(String depend) {
		this.depend = depend.toLowerCase();
	}

	public boolean isCmd() {
		return isCmd;
	}

	public void setCmd(boolean isCmd) {
		this.isCmd = isCmd;
	}

	public int getIndex() {
		return index;
	}

	public void setIndex(int index) {
		this.index = index;
	}
	
}
